#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QSerialPort>
#include <QSerialPortInfo>
#include <QPushButton>
#include <QTextBrowser>
#include <QTextEdit>
#include <QVBoxLayout>
#include <QLabel>
#include <QComboBox>
#include <QGridLayout>
#include <QMessageBox>
#include <QDebug>

QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();

private:
    Ui::MainWindow *ui;

    QSerialPort *serialPort; /* 串口对象 */
    QTextBrowser *textBrowser; /* 用作接收数据 */
    QTextEdit *textEdit; /* 用作发送数据 */
    QPushButton *pushButton[2]; /* 按钮 */
    QComboBox *comboBox[5]; /* 下拉选择盒子 */
    QLabel *label[5]; /* 标签 */
    QVBoxLayout *vboxLayout; /* 垂直布局 */
    QGridLayout *gridLayout; /* 网格布局 */
    QWidget *mainWidget; /* 主布局 */
    QWidget *funcWidget; /* 设置功能区域 */

    void layoutInit(); /* 布局初始化 */
    void scanSerialPort(); /* 扫描系统可用串口 */
    void baudRateItemInit(); /* 波特率项初始化 */
    void dataBitsItemInit(); /*数据位项初始化 */
    void parityItemInit(); /* 校验位项初始化 */
    void stopBitsItemInit(); /* 停止位项初始化 */

private slots:
    void sendPushButtonClicked();
    void openSerialPortPushButtonClicked();
    void serialPortReadyRead();
};
#endif // MAINWINDOW_H
